package com.wicket.okrbff.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.biz.service.CycleStageDataService;

import com.wicket.okrbff.common.ro.OkrResult;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import com.wicket.okrapp.integration.FwAppCycleStageDataClient;
import com.wicket.okrapp.integration.dto.QueryStaWorkSumConDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryStaWorkSumConDetailReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrapp.integration.FwAppTaskClient;
import com.wicket.okrapp.integration.dto.QueryReportingTaskInfoDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryReportingTaskInfoDetailReqDto;
import java.util.stream.Collectors;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrapp.integration.dto.QueryCycleStageDataListRespDto;
import com.wicket.okrapp.integration.dto.QueryCycleStageDataListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffBusAppDocRelaDto;
import com.wicket.okrapp.integration.FwAppBatchClient;
import com.wicket.okrapp.integration.dto.QueryPlanEvaBatchSetDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryPlanEvaBatchSetDetailReqDto;
import com.wicket.okrapp.integration.dto.AddCycleStageDataRespDto;
import com.wicket.okrapp.integration.dto.AddCycleStageDataReqDto;
import com.wicket.okrbff.common.exception.BizException;
import com.wicket.okrapp.integration.dto.QueryQuestionOfReportingTaskDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryQuestionOfReportingTaskDetailReqDto;
import com.wicket.okrapp.integration.FwAppTargetCycleClient;
import com.wicket.okrapp.integration.FwAppUnstructuredDataClient;
import com.wicket.okrapp.integration.dto.QueryEvaObjTargetCycleDetailBorderRespDto;
import com.wicket.okrapp.integration.dto.QueryEvaObjTargetCycleDetailBorderReqDto;
import com.wicket.okrapp.integration.dto.QueryCycleStageDataDetailComRespDto;
import com.wicket.okrapp.integration.dto.QueryCycleStageDataDetailComReqDto;
import com.wicket.okrapp.integration.dto.AddDocAndDocRelaComRespDto;
import com.wicket.okrapp.integration.dto.AddDocAndDocRelaComReqDto;
import com.wicket.okrapp.integration.dto.BusAppDocRelaDto;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrapp.integration.dto.QueryEditStatusCycleStageDataDetailRespDto;
import com.wicket.okrapp.integration.dto.QueryEditStatusCycleStageDataDetailReqDto;
import com.wicket.okrcalc.integration.FwCalcStandardDataClient;
import com.wicket.okrcalc.integration.dto.QueryEvaStandardDataDetailComRespDto;
import com.wicket.okrcalc.integration.dto.QueryEvaStandardDataDetailComReqDto;
import com.wicket.okrapp.integration.dto.TempStorageTaskReportPermissionVerificationComRespDto;
import com.wicket.okrapp.integration.dto.TempStorageTaskReportPermissionVerificationComReqDto;
import com.wicket.okrcomponent.integration.FwCompInterfaceModeClient;
import com.wicket.okrcomponent.integration.dto.ImplementMarkdownTurnToTextComRespDto;
import com.wicket.okrcomponent.integration.dto.ImplementMarkdownTurnToTextComReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailBorderReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffCycleStageAttaPicDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailComBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordDetailComBorderReqDto;
import com.wicket.okrapp.integration.dto.QueryWorkTaskCycleStageDataDetailComRespDto;
import com.wicket.okrapp.integration.dto.QueryWorkTaskCycleStageDataDetailComReqDto;
import com.wicket.okrcomponent.integration.FwCompUnstructuredDataClient;
import com.wicket.okrcomponent.integration.dto.ImplementLoopAddUnstructuredRelationshipComRespDto;
import com.wicket.okrcomponent.integration.dto.ImplementLoopAddUnstructuredRelationshipComReqDto;
import com.wicket.okrcomponent.integration.dto.UnstructuredRelationshipDto;
import com.wicket.okrapp.integration.FwAppIndexSystemClient;
import com.wicket.okrapp.integration.dto.ImplementContentTypeChangeTableTypeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementContentTypeChangeTableTypeComReqDto;
import com.wicket.okrcomponent.integration.dto.ImplementSeparateAddOrDeleteDocListComRespDto;
import com.wicket.okrcomponent.integration.dto.ImplementSeparateAddOrDeleteDocListComReqDto;
import com.wicket.okrapp.integration.dto.DocumentDto;
import com.wicket.okrcalc.integration.dto.QuerySubmitFinanceStandardDataDetailComRespDto;
import com.wicket.okrcalc.integration.dto.QuerySubmitFinanceStandardDataDetailComReqDto;
import com.wicket.okrapp.integration.FwAppStandardDataClient;
import com.wicket.okrapp.integration.FwAppEvaCalcClient;
import com.wicket.okrapp.integration.dto.ImplementSucReportTaskElementAnalyzeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementSucReportTaskElementAnalyzeComReqDto;
import com.wicket.okrapp.integration.dto.ImplementReportDataQualityOperationElementComRespDto;
import com.wicket.okrapp.integration.dto.ImplementReportDataQualityOperationElementComReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffAccountSubjectDto;
import com.wicket.okrapp.integration.dto.QueryReportingTaskInfoDetailComRespDto;
import com.wicket.okrapp.integration.dto.QueryReportingTaskInfoDetailComReqDto;
import com.wicket.okrapp.integration.dto.AnalysisAllSubordinatesHaveCompletedReportComRespDto;
import com.wicket.okrapp.integration.dto.AnalysisAllSubordinatesHaveCompletedReportComReqDto;
import com.wicket.okrcalc.integration.FwCalcWorkTasksClient;
import com.wicket.okrcalc.integration.dto.QueryToBeReportedWorkTaskStandardDataDetailComRespDto;
import com.wicket.okrcalc.integration.dto.QueryToBeReportedWorkTaskStandardDataDetailComReqDto;




/**
 * @author ： 
 * @date ： 
 *
 *
 * @version 1.0
 */
@Api(value = "CycleStageData", tags = {"CycleStageData"})
@RestController
// @RequestMapping("/oms/cycleStageData/")
public class CycleStageDataController {
    @Autowired
    CycleStageDataService cycleStageDataService;
/**
   * B3-查询阶段工作总结内容详情
   * gen by moon at 9/24/2022, 4:28:39 AM
   */
    @PostMapping("/oms/cycleStageData/queryStaWorkSumConDetail")
    @ApiOperation(value = "B3-查询阶段工作总结内容详情", response = OkrResult.class)
    public OkrResult<BffQueryStaWorkSumConDetailRespDto> queryStaWorkSumConDetail(@RequestBody(required=false) @Validated BffQueryStaWorkSumConDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryStaWorkSumConDetail(reqDTO));
    }
/**
   * B3-查询已发布周期阶段资料详情(边界)
   * gen by moon at 1/11/2023, 5:52:56 AM
   */
    @PostMapping("/oms/cycleStageData/queryReleaseCycleStageDataDetailBorder")
    @ApiOperation(value = "B3-查询已发布周期阶段资料详情(边界)", response = OkrResult.class)
    public OkrResult<BffQueryReleaseCycleStageDataDetailBorderRespDto> queryReleaseCycleStageDataDetailBorder(@RequestBody(required=false) @Validated BffQueryReleaseCycleStageDataDetailBorderReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryReleaseCycleStageDataDetailBorder(reqDTO));
    }
/**
   * B3-查询已发布汇报任务问题列表(边界)
   * gen by moon at 11/18/2022, 3:39:37 PM
   */
    @PostMapping("/oms/cycleStageData/queryReleaseQuestionOfReportingTaskListBorder")
    @ApiOperation(value = "B3-查询已发布汇报任务问题列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryReleaseQuestionOfReportingTaskListBorderRespDto> queryReleaseQuestionOfReportingTaskListBorder(@RequestBody(required=false) @Validated BffQueryReleaseQuestionOfReportingTaskListBorderReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryReleaseQuestionOfReportingTaskListBorder(reqDTO));
    }
/**
   * B3-新增汇报任务问题
   * gen by moon at 9/26/2022, 6:15:41 AM
   */
    @PostMapping("/oms/cycleStageData/addQuestionOfReportingTask")
    @ApiOperation(value = "B3-新增汇报任务问题", response = OkrResult.class)
    public OkrResult<BffAddQuestionOfReportingTaskRespDto> addQuestionOfReportingTask(@RequestBody(required=false) @Validated BffAddQuestionOfReportingTaskReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.addQuestionOfReportingTask(reqDTO));
    }
/**
   * B3-查询未提交汇报任务问题详情
   * gen by moon at 11/18/2022, 3:39:38 PM
   */
    @PostMapping("/oms/cycleStageData/queryNotSubmitQuestionOfReportingTaskDetail")
    @ApiOperation(value = "B3-查询未提交汇报任务问题详情", response = OkrResult.class)
    public OkrResult<BffQueryNotSubmitQuestionOfReportingTaskDetailRespDto> queryNotSubmitQuestionOfReportingTaskDetail(@RequestBody(required=false) @Validated BffQueryNotSubmitQuestionOfReportingTaskDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryNotSubmitQuestionOfReportingTaskDetail(reqDTO));
    }
/**
   * B3-查询已提交汇报资料详情
   * gen by moon at 1/11/2023, 5:53:00 AM
   */
    @PostMapping("/oms/cycleStageData/querySubmitTaskInfoDetail")
    @ApiOperation(value = "B3-查询已提交汇报资料详情", response = OkrResult.class)
    public OkrResult<BffQuerySubmitTaskInfoDetailRespDto> querySubmitTaskInfoDetail(@RequestBody(required=false) @Validated BffQuerySubmitTaskInfoDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.querySubmitTaskInfoDetail(reqDTO));
    }
/**
   * B3-查询已提交汇报任务问题列表
   * gen by moon at 12/19/2022, 5:34:43 AM
   */
    @PostMapping("/oms/cycleStageData/querySubmitQuestionOfReportingTaskList")
    @ApiOperation(value = "B3-查询已提交汇报任务问题列表", response = OkrResult.class)
    public OkrResult<BffQuerySubmitQuestionOfReportingTaskListRespDto> querySubmitQuestionOfReportingTaskList(@RequestBody(required=false) @Validated BffQuerySubmitQuestionOfReportingTaskListReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.querySubmitQuestionOfReportingTaskList(reqDTO));
    }
/**
   * B3-新增我汇报的任务问题
   * gen by moon at 9/24/2022, 4:28:28 AM
   */
    @PostMapping("/oms/cycleStageData/addQuestionOfTaskReport")
    @ApiOperation(value = "B3-新增我汇报的任务问题", response = OkrResult.class)
    public OkrResult<BffAddQuestionOfTaskReportRespDto> addQuestionOfTaskReport(@RequestBody(required=false) @Validated BffAddQuestionOfTaskReportReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.addQuestionOfTaskReport(reqDTO));
    }
/**
   * B3-新增汇报给我的任务问题
   * gen by moon at 9/24/2022, 4:28:30 AM
   */
    @PostMapping("/oms/cycleStageData/addQuestionOfTaskReportedToMe")
    @ApiOperation(value = "B3-新增汇报给我的任务问题", response = OkrResult.class)
    public OkrResult<BffAddQuestionOfTaskReportedToMeRespDto> addQuestionOfTaskReportedToMe(@RequestBody(required=false) @Validated BffAddQuestionOfTaskReportedToMeReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.addQuestionOfTaskReportedToMe(reqDTO));
    }
/**
   * B3-新增汇报任务资料文档关系
   * gen by moon at 9/24/2022, 4:28:36 AM
   */
    @PostMapping("/oms/cycleStageData/addReportingTaskInfoDocRela")
    @ApiOperation(value = "B3-新增汇报任务资料文档关系", response = OkrResult.class)
    public OkrResult<BffAddReportingTaskInfoDocRelaRespDto> addReportingTaskInfoDocRela(@RequestBody(required=false) @Validated BffAddReportingTaskInfoDocRelaReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.addReportingTaskInfoDocRela(reqDTO));
    }
/**
   * B3-查询编辑状态周期阶段资料内容详情
   * gen by moon at 12/15/2022, 5:35:27 PM
   */
    @PostMapping("/oms/cycleStageData/queryEditStatusCycleStageDataDetail")
    @ApiOperation(value = "B3-查询编辑状态周期阶段资料内容详情", response = OkrResult.class)
    public OkrResult<BffQueryEditStatusCycleStageDataDetailRespDto> queryEditStatusCycleStageDataDetail(@RequestBody(required=false) @Validated BffQueryEditStatusCycleStageDataDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryEditStatusCycleStageDataDetail(reqDTO));
    }
/**
   * B3-查历史汇报任务的周期阶段资料详情(公共)
   * gen by moon at 10/21/2023, 8:09:55 PM
   */
    @PostMapping("/oms/cycleStageData/querySubReportTaskCycleStageDataDetailCom")
    @ApiOperation(value = "B3-查历史汇报任务的周期阶段资料详情(公共)", response = OkrResult.class)
    public OkrResult<BffQuerySubReportTaskCycleStageDataDetailComRespDto> querySubReportTaskCycleStageDataDetailCom(@RequestBody(required=false) @Validated BffQuerySubReportTaskCycleStageDataDetailComReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.querySubReportTaskCycleStageDataDetailCom(reqDTO));
    }
/**
   * B3-查询工作任务周期阶段资料详情
   * gen by moon at 1/23/2024, 2:45:44 AM
   */
    @PostMapping("/oms/cycleStageData/queryWorkTaskCycleStageDataDetail")
    @ApiOperation(value = "B3-查询工作任务周期阶段资料详情", response = OkrResult.class)
    public OkrResult<BffQueryWorkTaskCycleStageDataDetailRespDto> queryWorkTaskCycleStageDataDetail(@RequestBody(required=false) @Validated BffQueryWorkTaskCycleStageDataDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryWorkTaskCycleStageDataDetail(reqDTO));
    }
/**
   * B3分析下级全部汇报完成
   * gen by moon at 7/20/2024, 11:15:35 PM
   */
    @PostMapping("/oms/cycleStageData/analysisAllSubordinatesHaveCompletedReport")
    @ApiOperation(value = "B3分析下级全部汇报完成", response = OkrResult.class)
    public OkrResult<BffAnalysisAllSubordinatesHaveCompletedReportRespDto> analysisAllSubordinatesHaveCompletedReport(@RequestBody(required=false) @Validated BffAnalysisAllSubordinatesHaveCompletedReportReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.analysisAllSubordinatesHaveCompletedReport(reqDTO));
    }
/**
   * B3查询暂存周期阶段资料信息详情
   * gen by moon at 8/9/2024, 10:51:40 PM
   */
    @PostMapping("/oms/cycleStageData/queryStagCycleStageDataInfoDetail")
    @ApiOperation(value = "B3查询暂存周期阶段资料信息详情", response = OkrResult.class)
    public OkrResult<BffQueryStagCycleStageDataInfoDetailRespDto> queryStagCycleStageDataInfoDetail(@RequestBody(required=false) @Validated BffQueryStagCycleStageDataInfoDetailReqDto reqDTO){
        return OkrResult.success(cycleStageDataService.queryStagCycleStageDataInfoDetail(reqDTO));
    }

}

